package com.jy.datapipeline.importserver.service;

import com.jy.datapipeline.common.exception.GlobalException;
import com.jy.datapipeline.common.vo.ReturnVo;
import com.jy.datapipeline.importserver.entity.ImportSubtask;
import org.quartz.SchedulerException;

import java.util.List;
import java.util.Set;

/**
 * @类名 ImportSubTaskService
 * @描述 TODO
 * @作者 白条君
 * @创建日期 2023/4/23 15:05
 * @版本 1.0
 */
public interface ImportSubTaskService {

    void addImportSubTask(ImportSubtask importSubTask) throws GlobalException;

//    List<ImportSubtask> querySubtasksByTaskStatus(String notStartTaskStatus);

    Set<Long> queryIds(Set<String> taskIds);

    void deleteSubTask(Long[] toArray) throws GlobalException, SchedulerException;

    Integer getTryCount(long id);

    void modifySubTask(ImportSubtask importSubTask) throws GlobalException;

    void modifySubTasksStatus(List<ImportSubtask> importSubTaskList) throws GlobalException;

    String queryTaskIdBySubtaskId(long id);

    Integer queryFailSubtask(String taskId);

    ReturnVo queryByPage(Long pageNo, Long pageSize, String subtaskStatus, String taskId, Integer trySubtaskLoadCurrentCount);

    List<ImportSubtask> querySubtasksById(Long id);

    ImportSubtask querySubtaskById(long id);

    void modifySubTaskRetryLoadCount(ImportSubtask importSubtask) throws GlobalException;

    ImportSubtask querySubtasksBySubtaskId(Long id);

    Integer getRetryLoadCurrentCount(Long id);

    List<ImportSubtask> queryNotStartSubtasks(String notStartTaskStatus);

    Integer getSubtaskStatus(long id);

    void batchRemove(Set<String> subtaskIds);

    List<ImportSubtask> querySubtaskIds(Set<String> taskIds);

    ImportSubtask queryLatestStatus(String taskId);
}
